using System.Threading.Tasks;
using JNPF.Utils;
using System.Collections.Generic;
using JNPF.Basics.Models;

namespace JNPF.Basics.Logic
{
    public interface jiushiZzhuserIService
    {
        /// <summary>
        /// 获取信息
        /// </summary>
        /// <param name="id">主键id</param>
        /// <returns></returns>
        Task<jiushiZzhuserEntity> GetInfo(string id);


        /// <summary>
        /// 根据公众号ID获取用户
        /// </summary>
        /// <param name="openId"></param>
        /// <returns></returns>
        Task<jiushiZzhuserEntity> GetInfoByOpenid(string openId);


        /// <summary>
        /// 根据小程序ID获取用户
        /// </summary>
        /// <param name="xcxOpenId"></param>
        /// <returns></returns>
        Task<jiushiZzhuserEntity> GetInfoByXcxOpenId(string xcxOpenId);


        /// <summary>
        /// 根据UUID获取用户ID
        /// </summary>
        /// <param name="openId"></param>
        /// <returns></returns>
        Task<jiushiZzhuserEntity> GetInfoByuuid(string uuid);


        /// <summary>
        /// 根据UUID获取用户ID
        /// </summary>
        /// <param name="openId"></param>
        /// <returns></returns>
        Task<jiushiZzhuserEntity> GetInfoByUserId(string userId);

        

        /// <summary>
        /// 列表(分页)
        /// </summary>
        /// <param name="input">请求参数</param>
        /// <returns></returns>
        Task<PageResult<jiushiZzhuserEntity>> GetPageList(jiushiZzhuserListQueryInput input);

        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task<int> Create(jiushiZzhuserEntity entity);

        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task<int> Update(jiushiZzhuserEntity entity);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        Task<int> Delete(jiushiZzhuserEntity entity);

        /// <summary>
        /// 列表
        /// </summary>
        /// <returns></returns>
        Task<List<jiushiZzhuserEntity>> GetList(jiushiZzhuserListQueryInput input);


        /// <summary>
        /// 列表
        /// </summary>
        /// <param name="input">请求参数</param>
        /// <returns></returns>
        Task<List<jiushiZzhuserEntity>> GetListByType(int type);

    }
}
